<!-- 
  需求：
    请验证Button组件的Prop类型 ，使它只接收: primary | ghost | dashed | link | text | default ，且默认值为default。
 -->
<template>
  <button>Button</button>
</template>

<script setup lang="ts">
// 方法1 ts
/* interface IProp {
  type: 'primary' | 'ghost' | 'dashed' | 'link' | 'text' | 'default'
}

withDefaults(defineProps<IProp>(), {
  type: 'default',
}) */

// 方法2
defineProps({
  type: {
    type: String,
    required: true,
    default: 'default',
    validator: (value) => ['primary', 'dashed', 'link', 'text', 'default'].includes(value)
  }
})
</script>